﻿/*----------------------------------------------------------------
  //Copyright (C) 2012 赵国伟
  //文件功能描述：权限管理Ajax请求服务端处理程序。
  //创建人：赵国伟
  //创建时间：2012-03-18 12:34:54
//----------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Shopping.Common;
using Shopping.BLL;
using Shopping.Model;

public partial class Manage_AS_PrivilegeCommon : BaseManagePage
{
    public static readonly PurviewResourceManage bllResource = new PurviewResourceManage();
    ReturnValue ret = new ReturnValue(ResultType.Fail);

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            string action = Request.QueryString["Action"] + "";
            switch (action)
            {
                case "SaveGroup":  //保存分组信息；
                    SaveGroup();
                    break;
                case "GetGroupInfo": //获取一条分组记录信息；
                    GetGroupInfo();
                    break;
                case "DeleteGroup":  //删除指定的分组信息；
                    DeleteGroup();
                    break;
                case "SaveResource": //保存资源信息；
                    SaveResource();
                    break;
                case "GetResource": //获取一条资源信息；
                    GetResource();
                    break;
                case "DeleteResource":  //删除一条资源信息；
                    DeleteResource();
                    break;
                case "GetOperate":  //查询一条资源操作信息；
                    GetOperate();
                    break;
                case "DeleteOperate"://删除一条资源操作信息；
                    DeleteOperate();
                    break;
                case "SaveOperate": //保存一条资源操作信息；
                    SaveOperate();
                    break;
                case "SaveRole":   //保存角色基本信息； 
                    SaveRole();
                    break;
                case "GetRole": //查询指定的一条角色信息；
                    GetRole();
                    break;
                case "DeleteRole"://删除一条角色信息；
                    DeleteRole();
                    break;
            }

        }
        Response.End();
    }

    #region "保存分组信息；"
    /// <summary>
    /// 保存分组信息；
    /// </summary>
    private void SaveGroup()
    {
        //获取客户端提交上来的数据；结构为json结构；
        string jsonData = Request["jsonData"] + "";  //获取传递过来的Json对象数据；
        ReturnValue ret = new ReturnValue();  //初始化一个返回值对象

        PurviewGroups info = null;
        try
        {
            ///将提交上来的Json格式的数据装化为相应的实体类；
            info = JSONHelper.JsonStringToObject<PurviewGroups>(jsonData);
            if (info.PurviewGroupID > 0)
                info.CreateDate = DateTime.Now;
        }
        catch (Exception e)
        {
            ret.Message = "数据提取失败！" + e.Message;
            Response.Write(ret.ToJsonString());
            return;
        }
        if (info != null)
        {
            ret = bllResource.SaveGroup(info);  //数据库提交保存；
        }
        else
        {
            ret.Message = "提交数据不能为空！";
        }
        Response.Write(ret.ToJsonString());
    }
    #endregion

    #region "查询一条指定的分组信息；"
    /// <summary>
    /// 查询一条指定的分组信息；
    /// </summary>
    private void GetGroupInfo()
    {
        int groupID = Utility.Cast2int(Utility.G("GroupID"));
        PurviewGroups data = bllResource.GetGroupInfo(groupID);
        if (data != null)
            Response.Write(data.ToJsonString());
    }
    #endregion

    #region "删除一条指定的分组信息；"
    /// <summary>
    /// 删除一条指定的分组信息；
    /// </summary>
    private void DeleteGroup()
    {
        int groupId = Utility.Cast2int(Utility.G("GroupID"));
        if (bllResource.UpdateGroupStatus(groupId, Status.已删除) > 0)
        {
            ret.Result = ResultType.Success;
            ret.Message = "操作成功！";
        }
        else
            ret.Message = "操作失败，未找到对应的记录！";
        Response.Write(ret.ToJsonString());
    }
    #endregion


    #region "保存一条资源信息"
    /// <summary>
    /// 保存一条资源信息
    /// </summary>
    private void SaveResource()
    {
        //获取客户端提交上来的数据；结构为json结构；
        string jsonData = Request["jsonData"] + "";  //获取传递过来的Json对象数据；
        string selectOperateIds = Utility.P<string>("SelectOperateIds");
        ReturnValue ret = new ReturnValue();  //初始化一个返回值对象
        PurviewResources info = null;
        try
        {
            ///将提交上来的Json格式的数据装化为相应的实体类；
            info = JSONHelper.JsonStringToObject<PurviewResources>(jsonData);
            if (info.PurviewResourceID > 0)
                info.CreateDate = DateTime.Now;
        }
        catch (Exception e)
        {
            ret.Message = "数据提取失败！" + e.Message;
            Response.Write(ret.ToJsonString());
            return;
        }
        if (info != null)
        {
            ret = bllResource.SaveResource(info, selectOperateIds);
        }
        else
        {
            ret.Message = "提交数据不能为空！";
        }
        Response.Write(ret.ToJsonString());
    }
    #endregion

    #region "获取一条资源信息；"
    /// <summary>
    /// 获取一条资源信息；
    /// </summary>
    private void GetResource()
    {
        int resID = Utility.Cast2int(Utility.G("PurviewResourceID"));
        ResourceInfo data = bllResource.GetResource(resID);
        if (data != null)
            Response.Write(JSONHelper.ObjectToJson <ResourceInfo>(data));
    }
    #endregion

    #region "删除一条资源信息；"
    /// <summary>
    /// 删除一条资源信息；
    /// </summary>
    private void DeleteResource()
    {

    }
    #endregion

    #region "查询一条资源操作信息"
    /// <summary>
    /// 查询一条资源操作信息
    /// </summary>
    private void GetOperate()
    {
        int operateId = Utility.G<int>("OperateID");
        PurviewOperateInfo o = bllResource.GetOperate(operateId);
        if (o != null)
            Response.Write(o.ToJsonString());

    }
    #endregion

    #region "删除一条指定的资源操作信息；"
    /// <summary>
    /// 删除一条指定的资源操作信息；
    /// </summary>
    private void DeleteOperate()
    {
        int operateId = Utility.G<int>("OperateID");
    }
    #endregion

    #region "保存一条资源操作信息；"
    /// <summary>
    /// 保存一条资源操作信息；
    /// </summary>
    private void SaveOperate()
    {
        //获取客户端提交上来的数据；结构为json结构；
        string jsonData = Request["jsonData"] + "";  //获取传递过来的Json对象数据；
        ReturnValue ret = new ReturnValue();  //初始化一个返回值对象
        PurviewOperates info = null;
        try
        {
            ///将提交上来的Json格式的数据装化为相应的实体类；
            info = JSONHelper.JsonStringToObject<PurviewOperates>(jsonData);
        }
        catch (Exception e)
        {
            ret.Message = "数据提取失败！" + e.Message;
            Response.Write(ret.ToJsonString());
            return;
        }
        if (info != null)
        {
            ret = bllResource.SaveOperate(info);
        }
        else
        {
            ret.Message = "提交数据不能为空！";
        }
        Response.Write(ret.ToJsonString());
    }
    #endregion

    #region "保存角色基本信息； by 赵国伟 2010-03-25"
    /// <summary>
    /// 保存角色基本信息
    /// </summary>
    public void SaveRole()
    {
        //获取客户端提交上来的数据；结构为json结构；
        string op = Request["op"] + "";
        if (op == "") op = "add";

        string jsonData = Request["jsonData"] + "";  //获取传递过来的Json对象数据；
        string jsonSelectRes = Request["jsonSelectRes"] + "";//存储权限的JSON对象；
        ReturnValue ret = new ReturnValue();  //初始化一个返回值对象

        PurviewRole info = null;
        List<PrivilegeInfo> listOfPrivilege = null;
        try
        {
            ///将提交上来的Json格式的数据装化为相应的实体类；
            info = JSONHelper.JsonStringToObject<PurviewRole>(jsonData);
            listOfPrivilege = JSONHelper.JsonStringToObject<List<PrivilegeInfo>>(jsonSelectRes);
        }
        catch (Exception e)
        {
            ret.Message = "数据提取失败！" + e.Message;
            Response.Write(ret.ToJsonString());
            return;
        }

        if (info != null)
        {
            ret = bllResource.SaveRole(info, listOfPrivilege);
        }
        else
        {
            ret.Message = "提交数据不能为空！";
        }
        Response.Write(ret.ToJsonString());
    }
    #endregion

    #region "查询指定的一条角色信息；by 赵国伟 2012-03-25"
    /// <summary>
    /// 查询指定的一条角色信息；
    /// </summary>
    private void GetRole()
    {
        int roleId = Utility.G<int>("RoleID");
        RoleInfo r = bllResource.GetRole(roleId);
        if (r != null)
            Response.Write(JSONHelper.ObjectToJson<RoleInfo>(r));
    }
    #endregion

    #region "删除一条指定的角色信息；"
    /// <summary>
    /// 删除一条指定的角色信息；
    /// </summary>
    private void DeleteRole()
    {
        int RoleID = Utility.G<int>("RoleID");

        Response.Write(bllResource.DeleteRole(RoleID).ToJsonString());
    }
    #endregion


}